package org.summerframework.component.mybites.annotation;

import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.*;

/**
 * @author 石超
 * @version v1.0.0
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface Synchronized {
    @AliasFor("lockKey")
    String value() default "";

    /**
     * 锁的名称
     * 可以多个，当不填时使用的是当前方法体的名称直接锁方法
     */
    @AliasFor("value")
    String lockKey() default "";

    /**
     * 超时时间
     */
    int timeout() default 60 * 1000;
}
